Thema: Continuous ‚Everything‘

Internes Crowdtesting - Mobilisierung der Mitarbeitenden für das Software Testing

Crowdtesting erfreut sich seit einigen Jahren wachsender Beliebtheit als neues Tool im Software-Testing. Die Vorteile liegen dabei vor allem in der hohen Geschwindigkeit und der kurzen Zykluszeit, welches eine Verkürzung der Testzyklen und somit eine Erhöhung der Testsequenzen nach sich zieht. Dadurch kann der Einsatz von Crowdtesting einen wesentlichen Beitrag zu einem Continous Integration und Deployment Ansatz leisten.

Bisher lag der Fokus beim Crowdtesting auf der Einbindung von externen Testexperten oder Kunden, um entweder Know-How oder zusätzliche Kapazitäten zu akquirieren oder aber in direkten Kundenkontakt zu treten (z.B. um User-Feedback zu erhalten). Neben diesen beiden Formen, gibt es noch eine weitere Form: den unternehmensinternen Einsatz von Crowdtesting. Internes Crowdtesting bezeichnet die Mobilisierung von Mitarbeitenden für Testing-Aktivitäten eines Unternehmens. Dabei folgen die Tester einem offenen Aufruf und melden sich in der Regel freiwillig für das Testing, welches als neue Aufgabe überwiegend während der Arbeitszeit ausgeführt wird. Der gesamte Prozess wird über ein Crowdtesting-System unterstützt und abgewickelt. Mit Hilfe von internem Crowdtesting können Mitarbeitende schnell und effizient für das Testing eingesetzt werden. Es eignet sich besonders, wenn das Testing von internen Fachpersonen durchgeführt werden muss, oder als begleitende Massnahme für ein aktives IT-Change Management.

Naturgemäss ist das Management von grossen Personengruppen zum Software-Testing alles andere als trivial. Damit internes Crowdtesting effizient eingesetzt werden kann, bedarf es eines gut ausgestalteten Systems, welches nicht nur technologische Komponenten (z.B. IT-Tools) beinhaltet, sondern auch auf Aspekte wie Aufgabengestaltung (Test Case Design), die Motivation der Teilnehmer oder die Integration von Crowdtesting in die Testprozesse eingeht. Das Design eines solchen Systems zur Nutzung von internem Crowdtesting ist Gegenstand der Präsentation und wird anhand einer Fallstudie zwischen dem Competence Center Crowdsourcing der Universität St.Gallen (HSG) und einer Bank verdeutlicht, welche an das Competence Center herangetreten ist, um internes Crowdtesting für den Einsatz in einem IT-Grossprojekt zu realisieren.

Bei dem Projekt handelt es sich um die Entwicklung und Einführung einer geschäftskritischen Software, welche von jedem Mitarbeiter für das Tagesgeschäft genutzt wird. Das Unternehmen hat eine lange Tradition in der Einbindung seiner Mitarbeiter in das Testing von unternehmensinternen Anwendungen. Die Bank stand jedoch vor dem Problem, dass der aktuelle Testprozess die Mitarbeiter im Rahmen des Grossprojektes nicht annähernd effizient genug integriert (die Mitarbeiter sind für das Testing zur Zentrale gereist und haben vor Ort die Software getestet), um eine ausreichende Testabdeckung und Softwarequalität zu erreichen (insgesamt waren mehr als 15.000 Use Cases zu testen). Weiterhin verfügte die Bank schlichtweg nicht über genügend Ressourcen, um für eine adäquate Abdeckung der verschiedenen Bereiche zu sorgen, was ein erhebliches Qualitätsrisiko darstellte. Ein weiteres Problem waren langsame und zu wenige Testzyklen. Zu oft mussten Testzyklen wegen fehlender Ressourcen verlängert oder verschoben werden. Diese Probleme sollten mit Hilfe von internem Crowdtesting gelöst werden.

Ziel war es, dass die Crowd wöchentlich System– und Regressionstest durchführt, um somit die Qualität der Software sicherzustellen – sowohl aus funktionaler Sicht als auch aus Sicht der End-Anwender in der Filiale. Um dieses Ziel zu erreichen entwickelte ein Team aus Forschern des Competence Center Crowdsourcing und Testexperten sowie Service Delivery Managern der Bank ein gemeinsames Crowdtesting-System zur effektiven und kontinuierlichen Einbindung von über 100 Mitarbeitenden aus verschiedensten Filialen und Bereichen der Bank.

Das entwickelte Crowdtesting-System besteht aus fünf Komponenten – (1) Umwelt, (2) Akteure, (3) Struktur und Prozesse, (4) Aufgaben, sowie (5) Technologie & Tools. (1) Die Komponente Umwelt beschäftigt sich mit der Abstimmung und Integration von Crowdtesting in die übergeordnete IT- und Test-Strategie des Projektes. Zentrale Punkte sind vor allem die Integration und Rückführung der Testbefunde sowie eine klare Definition wann und für was Crowdtesting eingesetzt werden soll. (2) Bei den Akteuren steht vor allem der Aufbau einer Crowd im Vordergrund, um eine schlagkräftige und kritische Grösse zu erreichen. Eine weitere Herausforderung in diesem Bereich bestand darin, die Kenntnisse und Verfügbarkeiten der initial über 200 angemeldeten Mitarbeiter strukturiert zu erheben, um die Tester entsprechenden Tests zuordnen zu können. (3) Die Komponente Struktur beinhaltet die Entwicklung eines Crowdtesting-Prozesses sowie eines entsprechenden Rollenmodells. In der Bank wurde bspw. ein eigenes «Crowdtesting-Management Office» geschaffen, welches sämtliche Crowdtest-Aktivitäten koordinierte. (4) Eine weitere zentrale Komponente ist das richtige Test Case Design inklusive einer genauen Spezifizierung des erwarteten Ergebnisses, sowie der Motivation und Bezahlung der Crowd für diese Aufgaben. (5) Die letzte Komponente des Systems beschreibt die eingesetzten Tools & Technologien. Die Bank realisierte das System vollständig mit intern verfügbaren Tools wie z.B. Skype, Microsoft TFS, Outlook und HP ALM. Richtig konfiguriert und in einen Workflow gebracht, konnte ein erster Prototyp bereits nach zehn Wochen getestet werden.

Die Fallstudie verdeutlich zwei zentrale Punkte. Erstens zeigt sie, dass internes Crowdtesting ein vielversprechendes und skalierbares Instrument im Continous Testing ist. Ohne die Unterstützung von über 100 Mitarbeitenden hätte die ambitionierte Projekt-Timeline vermutlich nur schwer eingehalten werden können. Zweitens illustrieren die Ergebnisse, wie ein Crowdtesting-System ausgestaltet werden kann, um den systematischen und regelmässigen Einsatz der Crowd auch in Grossprojekten zu ermöglichen.

Niklas Leicht

Niklas Leicht ist Projektleiter am Institut für Wirtschaftsinformatik an der Universität St. Gallen (Schweiz).

Seine Forschungsinteressen liegen im Bereich agile Enterprise, Customer -Centered Software Development und Crowdsourcing im Software Testing. Er leitet mehrere Forschungs- und Praxisprojekte in diesem Bereich und schrieb seine Dissertation mit dem Thema «Improving Software Testing Quality through the Crowd» am Lehrstuhl von Prof. Leimeister.

Vor seiner Tätigkeit am Lehrstuhl sammelte er praktische Erfahrung als Unternehmensberater bei KE Associates und betreute dort diverse IT-Transformationsprojekte in der Banking- Industrie. Vorträge auf den wichtigsten akademischen Konferenzen der Wirtschaftsinformatik sowie diversen Testing-Konferenzen (u.a. Software QS Tag, Swiss Testing Day) runden sein Profil ab.